
import '../main.dart';
import 'socket.dart';

enum Mode { reader, identify, none }


class ThreeToOneManager{

  late ThreeToOneManager manager;

  ThreeToOneManager getManager(){
    return manager;
  }

  factory ThreeToOneManager() => _singleton;

  static final ThreeToOneManager _singleton = ThreeToOneManager._internal();

  ThreeToOneManager._internal();

  Mode? mode;

  setMode(Mode mode){
    this.mode = mode;
  }

  setModeAndStart(Mode mode){
    this.mode = mode;
    if(mode == Mode.reader){
      socketHelper.add(m1Inventory());
    }
    if(mode == Mode.identify){
      socketHelper.add(icrInventory());
    }
    // if(mode == Mode.inventory){
    //   idSerialPortHelper.sendData(setIos15693());
    // }
  }

  start(){
    if(mode == Mode.reader){
      socketHelper.add(m1Inventory());
    }
    if(mode == Mode.identify){
      socketHelper.add(icrInventory());
    }
  }

  //
  // setModeSuccess(){
  //   if(mode == Mode.reader){
  //     idSerialPortHelper.sendData(setRequest());
  //     return;
  //   }
  //   if(mode == Mode.identify){
  //     idSerialPortHelper.sendData(readerIdentify());
  //     return;
  //   }
  //   if(mode == Mode.inventory){
  //     idSerialPortHelper.sendData(inventory());
  //     return;
  //   }
  //   if(mode == Mode.resetToReady){
  //     setMode(Mode.eas);
  //     if(isBorrow){
  //       // idSerialPortHelper.sendData(readBlock(rfid));
  //       idSerialPortHelper.sendData(setEasBorrow());
  //     }else{
  //       idSerialPortHelper.sendData(setEasReturn());
  //     }
  //     return;
  //   }
  // }
  //
  // setRequestSuccess(){
  //   if(mode == Mode.reader){
  //     idSerialPortHelper.sendData(readReader());
  //   }
  // }
  //
  // setInventorySuccess(String rfid){
  //   this.rfid = rfid;
  //   setMode(Mode.readBlock);
  //   idSerialPortHelper.sendData(readBlock(rfid));
  // }
  //
  // setNoSuccess(String? no){
  //   this.no = no;
  //   setMode(Mode.resetToReady);
  //   idSerialPortHelper.sendData(resetToReady(rfid));
  // }
  //
  // setRequestFailed(){
  //   if(mode == Mode.reader){
  //     idSerialPortHelper.sendData(setRequest());
  //   }
  //   if(mode == Mode.identify){
  //     idSerialPortHelper.sendData(readerIdentify());
  //   }
  //   if(mode == Mode.inventory || mode == Mode.readBlock|| mode == Mode.resetToReady ||  mode == Mode.eas ||  mode == Mode.afi){
  //     idSerialPortHelper.sendData(inventory());
  //   }
  // }
  //
  // setEasSuccess(){
  //   setMode(Mode.afi);
  //   if(isBorrow){
  //     idSerialPortHelper.sendData(setAfiBorrow(rfid));
  //   }else{
  //     idSerialPortHelper.sendData(setAfiReturn(rfid));
  //   }
  // }
  //
  // setAfiSuccess(){
  //   eventFactory.fire(InventoryRfidEvent(no));
  // }

}